<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of BilheteVO
 *
 * @author thales
 */
class BilheteVO {
    private $id;
    private $nomeEmissor;
    private $dataEmissao;
    private $localizador;
    private $ciaAerea;
    private $dtIda;
    private $dtVolta;
    private $numBilhete;
    private $valDu;
    private $txEmbarque;
    private $valPagar;
    private $valReceber;
    private $valMultaPontos;
    private $valMultaMoeda;
    private $metaDomestica;
    private $percentDomestica;
    private $clienteId;
    private $tipoPagamentoId;
    private $tipoOperacaoId;
    private $origem;
    private $destino;
    
    public function getId() {
        return $this->id;
    }

    public function setId($id) {
        if ( !is_numeric($id) && $id < 1 ) {
            throw new Exception('O campo id deve ser do tipo inteiro e maior que zero!' . __METHOD__ );
        }
        $this->id = $id;
    }

    public function getNomeEmissor() {
        return $this->nomeEmissor;
    }

    public function setNomeEmissor($nomeEmissor) {
        if ( strlen($nomeEmissor) > 255) {
            throw new UserException('O nome do emisor deve conter no máximo 255 caracteres!');
        }
        $this->nomeEmissor = $nomeEmissor;
    }

    public function getDataEmissao() {
        return $this->dataEmissao;
    }

    public function setDataEmissao($dataEmissao) {
        if ( !preg_match(';^(0[1-9]|[1,2][0-9]|3[0,1])/(0[1-9]|1[0,1,2])/\d{4}$;', $dataEmissao) &&
             !preg_match(';^(0[1-9]|[1,2][0-9]|3[0,1])/(0[1-9]|1[0,1,2])/\d{4} ([0,1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$;', $dataEmissao) &&
             !preg_match(';^\d{4}-(0[1-9]|1[0,1,2])-(0[1-9]|[1,2][0-9]|3[0,1]) ([0,1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$;', $dataEmissao)) {
             throw new UserException('Preencha a data corretamente! formato: 25/01/2012');
        }
        
        $this->dataEmissao = $dataEmissao;
    }

    public function getLocalizador() {
        return $this->localizador;
    }

    public function setLocalizador($localizador) {
        if ( strlen($localizador) > 100) {
            throw new UserException('O campo localizador deve conter no máximo 100 caracteres!');
        }
        $this->localizador = $localizador;
    }

    public function getCiaAerea() {
        return $this->ciaAerea;
    }

    public function setCiaAerea($ciaAerea) {
        if ( strlen($ciaAerea) > 255) {
            throw new UserException('O campo Companhia aérea deve conter no máximo 255 caracteres!');
        }
        $this->ciaAerea = $ciaAerea;
    }

    public function getDtIda() {
        return $this->dtIda;
    }

    public function setDtIda($dtIda) {
        if ( !preg_match(';^(0[1-9]|[1,2][0-9]|3[0,1])/(0[1-9]|1[0,1,2])/\d{4}$;', $dtIda) &&
             !preg_match(';^(0[1-9]|[1,2][0-9]|3[0,1])/(0[1-9]|1[0,1,2])/\d{4} ([0,1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$;', $dtIda) &&
             !preg_match(';^\d{4}-(0[1-9]|1[0,1,2])-(0[1-9]|[1,2][0-9]|3[0,1]) ([0,1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$;', $dtIda)) {
             throw new UserException('Preencha a data corretamente! formato: 25/01/2012');
        }
        $this->dtIda = $dtIda;
    }

    public function getDtVolta() {
        return $this->dtVolta;
    }

    public function setDtVolta($dtVolta) {
        if ( !preg_match(';^(0[1-9]|[1,2][0-9]|3[0,1])/(0[1-9]|1[0,1,2])/\d{4}$;', $dtVolta) &&
             !preg_match(';^(0[1-9]|[1,2][0-9]|3[0,1])/(0[1-9]|1[0,1,2])/\d{4} ([0,1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$;', $dtVolta) &&
             !preg_match(';^\d{4}-(0[1-9]|1[0,1,2])-(0[1-9]|[1,2][0-9]|3[0,1]) ([0,1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$;', $dtVolta)) {
             throw new UserException('Preencha a data corretamente! formato: 25/01/2012');
        }
        $this->dtVolta = $dtVolta;
    }

    public function getNumBilhete() {
        return $this->numBilhete;
    }

    public function setNumBilhete($numBilhete) {
        if ( !is_numeric($numBilhete) ) {
            throw new UserException('O campo número do bilhete deve conter apenas números!' );
        }
        $this->numBilhete = $numBilhete;
    }

    public function getValDu() {
        return $this->valDu;
    }

    public function setValDu($valDu) {
        if ( !is_float($valDu) ) {
            throw new UserException('O campo valor DU deve ser preenchido da seguinte forma: 1,00!' );
        }
        $this->valDu = $valDu;
    }

    public function getTxEmbarque() {
        return $this->txEmbarque;
    }

    public function setTxEmbarque($txEmbarque) {
        if ( !is_float($txEmbarque) ) {
            throw new UserException('O campo taxa de embarque deve ser preenchido da seguinte forma: 1,00!' );
        }
        $this->txEmbarque = $txEmbarque;
    }

    public function getValPagar() {
        return $this->valPagar;
    }

    public function setValPagar($valPagar) {
        if ( !is_float($valPagar) ) {
            throw new UserException('O campo valor apagar deve ser preenchido da seguinte forma: 1,00!' );
        }
        $this->valPagar = $valPagar;
    }

    public function getValReceber() {
        return $this->valReceber;
    }

    public function setValReceber($valReceber) {
        if ( !is_float($valReceber) ) {
            throw new UserException('O campo valor a receber deve ser preenchido da seguinte forma: 1,00!' );
        }
        $this->valReceber = $valReceber;
    }

    public function getValMultaPontos() {
        return $this->valMultaPontos;
    }

    public function setValMultaPontos($valMultaPontos) {
        if ( !is_float($valMultaPontos) ) {
            throw new UserException('O campo valor de multa em pontos deve ser preenchido da seguinte forma: 1,00!' );
        }
        $this->valMultaPontos = $valMultaPontos;
    }

    public function getValMultaMoeda() {
        return $this->valMultaMoeda;
    }

    public function setValMultaMoeda($valMultaMoeda) {
        if ( !is_float($valMultaMoeda) ) {
            throw new UserException('O campo valor de multa em moeda deve ser preenchido da seguinte forma: 1,00!' );
        }
        $this->valMultaMoeda = $valMultaMoeda;
    }

    public function getMetaDomestica() {
        return $this->metaDomestica;
    }

    public function setMetaDomestica($metaDomestica) {
        if ( !is_numeric($metaDomestica) ) {
            throw new UserException('O campo meta doméstica deve conter apenas números!' );
        }
        $this->metaDomestica = $metaDomestica;
    }

    public function getPercentDomestica() {
        return $this->percentDomestica;
    }

    public function setPercentDomestica($percentDomestica) {
        if ( !is_float($percentDomestica) ) {
            throw new UserException('O campo vpercentual doméstico deve ser preenchido da seguinte forma: 1,00!' );
        }
        $this->percentDomestica = $percentDomestica;
    }

    public function getClienteId() {
        return $this->clienteId;
    }

    public function setClienteId($clienteId) {
        if ( !is_numeric($clienteId) && $clienteId < 1 ) {
            throw new Exception('O campo clienteId deve ser do tipo inteiro e maior que zero!' . __METHOD__ );
        }
        $this->clienteId = $clienteId;
    }

    public function getTipoPagamentoId() {
        return $this->tipoPagamentoId;
    }

    public function setTipoPagamentoId($tipoPagamentoId) {
        if ( !is_numeric($tipoPagamentoId) && $tipoPagamentoId < 1 ) {
            throw new Exception('O campo tipoPagamentoId deve ser do tipo inteiro e maior que zero!' . __METHOD__ );
        }
        $this->tipoPagamentoId = $tipoPagamentoId;
    }

    public function getTipoOperacaoId() {
        return $this->tipoOperacaoId;
    }

    public function setTipoOperacaoId($tipoOperacaoId) {
        if ( !is_numeric($tipoOperacaoId) && $tipoOperacaoId < 1 ) {
            throw new Exception('O campo tipoOperacaoId deve ser do tipo inteiro e maior que zero!' . __METHOD__ );
        }
        $this->tipoOperacaoId = $tipoOperacaoId;
    }

    public function getOrigem() {
        return $this->origem;
    }

    public function setOrigem($origem) {
        if ( strlen($origem) > 45 ) {
            throw new UserException('O campo origem deve conter no máximo 45 caracteres!');
        }
        $this->origem = $origem;
    }

    public function getDestino() {
        return $this->destino;
    }

    public function setDestino($destino) {
        if ( strlen($destino) > 45 ) {
            throw new UserException('O campo destino deve conter no máximo 45 caracteres!');
        }
        $this->destino = $destino;
    }


}

?>
